import Vue from 'vue'
import Vuex from 'vuex'

import router from '../router/index.js';

Vue.use(Vuex)
Vue.use(router)

export default new Vuex.Store({
	state: {
		tabsPage: [],
		tabValue: '',
		activeItemName:"Home"
	},
	getters: {

	},
	mutations: {
		//当点击menu时触发这个函数
		editableTabs: (state, obj) => {
			let arr = Array.from(state.tabsPage);
			//判断tabsPage是否为空
			if (arr.length !== 0) {
				// 使用 Array.some 去判断是否存在对象信息
				var even = function(obj) {
					return arr.some(item => {
						return item.name === obj.routerName;
					});
				};
				// even方法 如果对象存在返回true,不存在则返回flase
				// 加！触发 true 代码块  
				if (!even(obj) /* 如果不存在将对象push进数组内bing */ ) {
					// 将tabs所需参数push进arr数组
					arr.push({
						title: obj.name,
						name: obj.routerName
					});
					// 赋值给tabsPage参数
					state.tabsPage = arr;
					//存储sessionStorage -- 解决刷新消失
					//window.sessionStorage.setItem("tabsPage", JSON.stringify(arr));
					//window.sessionStorage.setItem("tabValue", obj.routerName);
					// 赋值给TabsValue参数  
					state.tabValue = obj.routerName;
					// 跳转 
					router.push({
						name: obj.routerName
					});
					state.activeItemName=obj.routerName
				} else { // 如果存在 只做跳转选中
					// 赋值给TabsValue参数  
					state.tabValue = obj.routerName;
					//window.sessionStorage.setItem("tabValue", obj.routerName);
					// 跳转 
					router.push({
						name: obj.routerName
					});
					state.activeItemName=obj.routerName
				};
			} else { // 如果为0
				// 将tabs所需参数push进arr数组
				arr.push({
					title: obj.name,
					name: obj.routerName
				});
				// 赋值给tabsPage参数
				state.tabsPage = arr;
				// 赋值给TabsValue参数  
				state.tabValue = obj.routerName;
				// 跳转 
				router.push({
					name: obj.routerName
				});
				
				state.activeItemName=obj.routerName
			}

		}
	},
	actions: {
		editableTabs(context, obj) {
			context.commit('editableTabs', obj)
		}
	},
	modules: {}
})